package com.zhaoxi.project.hrp.service.impl;

import com.zhaoxi.project.hrp.domain.HrpPartner;
import com.zhaoxi.project.hrp.mapper.HrpPartnerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 合作伙伴Service业务层处理
 *
 * @author zhaoxi
 * @date 2023-07-07
 */
@Service
public class HrpPartnerServiceImpl {
    @Autowired
    private HrpPartnerMapper hrpPartnerMapper;

    /**
     * 1、新增合作伙伴
     *
     * @param hrpPartner 合作伙伴
     * @return 结果
     */

    public int insertHrpPartner(HrpPartner hrpPartner) {
        return hrpPartnerMapper.insertHrpPartner(hrpPartner);
    }

    /**
     * 2、修改合作伙伴
     *
     * @param hrpPartner 合作伙伴
     * @return 结果
     */

    public int updateHrpPartner(HrpPartner hrpPartner) {
        return hrpPartnerMapper.updateHrpPartner(hrpPartner);
    }


    /**
     * 3-1、删除合作伙伴信息
     *
     * @param id 合作伙伴主键
     * @return 结果
     */

    public int deleteHrpPartnerById(Long id) {
        return hrpPartnerMapper.deleteHrpPartnerById(id);
    }

    /**
     * 3-2、批量删除合作伙伴
     *
     * @param ids 需要删除的合作伙伴主键
     * @return 结果
     */

    public int deleteHrpPartnerByIds(Long[] ids) {
        return hrpPartnerMapper.deleteHrpPartnerByIds(ids);
    }

    /**
     * 4-1、查询合作伙伴
     *
     * @param id 合作伙伴主键
     * @return 合作伙伴
     */

    public HrpPartner selectHrpPartnerById(Long id) {
        return hrpPartnerMapper.selectHrpPartnerById(id);
    }

    /**
     * 4-2、查询合作伙伴列表
     *
     * @param hrpPartner 合作伙伴
     * @return 合作伙伴
     */

    public List<HrpPartner> selectHrpPartnerList(HrpPartner hrpPartner) {
        return hrpPartnerMapper.selectHrpPartnerList(hrpPartner);
    }

    public HrpPartner selectHrpLeadById(Long id) {
        return hrpPartnerMapper.selectHrpLeadById(id);
    }

    public HrpPartner selectHrpLeadByMobile(HrpPartner crmLead) {
        return hrpPartnerMapper.selectHrpPartnerByMobile(crmLead);
    }

    /**
     * 查询客户跟踪列表
     *
     * @param crmLead 客户跟踪
     * @return 客户跟踪
     */

    public List<HrpPartner> selectHrpLeadList(HrpPartner crmLead) {
        return hrpPartnerMapper.selectHrpLeadList(crmLead);
    }

    /**
     * 新增客户跟踪
     *
     * @param crmLead 客户跟踪
     * @return 结果
     */

    public int insertHrpLead(HrpPartner crmLead) {
        this.insertLeadComment(crmLead);
        return hrpPartnerMapper.insertHrpLead(crmLead);
    }

    /**
     * 修改客户跟踪
     *
     * @param crmLead 客户跟踪
     * @return 结果
     */

    public int updateHrpLead(HrpPartner crmLead) {
        //如果没有就调用新增。
        if (hrpPartnerMapper.selectHrpLeadById(crmLead.getId()) == null) {
            return this.insertHrpLead(crmLead);
        } else {
            this.insertLeadComment(crmLead);
            return hrpPartnerMapper.updateHrpLead(crmLead);
        }
    }

    /**
     * 批量删除客户跟踪
     *
     * @param ids 需要删除的客户跟踪主键
     * @return 结果
     */

    public int deleteHrpLeadByIds(Long[] ids) {
        return hrpPartnerMapper.deleteHrpLeadByIds(ids);
    }

    /**
     * 删除客户跟踪信息
     *
     * @param id 客户跟踪主键
     * @return 结果
     */

    public int deleteHrpLeadById(Long id) {
        return hrpPartnerMapper.deleteHrpLeadById(id);
    }

    public HrpPartner selectHrpPartnerByMobile(HrpPartner hrpPartner) {
        return hrpPartnerMapper.selectHrpPartnerByMobile(hrpPartner);
    }

    public List<HrpPartner> selectHrpLeadCommentList(HrpPartner hrpPartner) {
        List<HrpPartner> listHrpPartner = hrpPartnerMapper.selectHrpLeadCommentList(hrpPartner);
        return listHrpPartner;
    }

    public int insertLeadComment(HrpPartner hrpPartner) {
        if (hrpPartner.getSalesStage() == null) {
            hrpPartner.setSalesStage("1");
        }
        return hrpPartnerMapper.insertLeadComment(hrpPartner);
    }

    public HrpPartner selectHrpLeadResumeInfo(Long id) {
        return hrpPartnerMapper.selectHrpLeadResumeInfo(id);
    }

    public int deleteHrpPartnerByTenantId(Long tenantId) {
        return hrpPartnerMapper.deleteHrpPartnerByTenantId( tenantId);
    }
}
